Data which is transmitted by any means, including along telecommunication links, via media such as storage disks, etc., must be protected to prevent the data being picked up and used by parties other than the intended recipient.
Security of information is a highly important aspect for any party transferring data. Users of networks, especially users of the Internet, are particularly vulnerable to unwanted parties intercepting data. The users may be commercial organisations, governments, universities or private individuals. Networks pass a huge variety of valuable, important and often confidential information. If the information is not secure, the consequences to the user can be disastrous. For example, the results may include financial losses, disclosure of confidential information, loss of confidence from clients and disruption to the user's activities.
In addition to transfer of information via networks, data transferred via other media such as storage disk, is also vulnerable to interception by unwanted parties.
To prevent such intrusion, data encryption methods are used to protect information during transmission from one end point to another. Encryption scrambles the data to make it unintelligible during transmission. In encryption systems, plain data is converted to a secure coded data (ciphertext) using an encryption method or algorithm with a secret key. A secret key is known only to the sender and the recipient. The recipient at the intended destination can decrypt the data by using the previously agreed secret key and the reverse of the encryption algorithm.
Data, such as binary data, text data and other forms of data which does not need to be delivered at a given rate, is encrypted in known cryptography systems in blocks of data. The data is broken into blocks of data. The blocks can be formed of a plurality of bytes of data and may be of varying length. Each block is encrypted according to an encryption algorithm on a block by block basis. The decryption of the data is then carried out in a similar block by block manner.
When dealing with streams of data where the data is time dependent as opposed to blocks of text or binary data, block encryption is no longer appropriate or indeed possible. Streams of data include multi-media streams of voice, video, sensor data, and other types of data. This technology is applicable to pervasive computing, media streams, Internet music and video, command and control situations etc.
Streams may have a real time or data rate dependency, or may be sporadic and intermittent. Streams deliver data a byte at a time and may even have bytes skipped. Therefore, the bytes cannot be collected into blocks for encryption before delivery to the intended destination, as this will destroy the delivery rate and flow of the stream of data. For example, a stream of data may be communicated from a control environment in the form of one byte per week, a problem arises if the bytes must be collected into blocks before being communicated.
Current solutions buffer the data and encode the data using block ciphers. This can cause problems with real time or sparse streams.
An encryption system is needed that can operate on a byte per byte basis. This forces a type of encryption that is basically a byte substitution cipher, for example, a Caesar cipher and a Vigenere cipher. A Caesar cipher is a simple substitution cipher which uses an algorithm which shifts each letter in a message a certain number of spaces. An approach to cracking this form of cipher is to use statistical data about language letter frequencies. For example, the English language can be analysed to give a table of the frequency of occurrence of each letter in a text of say 1000 letters. An enciphered text can then be analysed to determine the letter frequencies and the frequencies compared to the known English language letter frequencies.
A more complex form of substitution cipher is the Vigenere cipher which is a polyalphabetic cipher. This form of cipher attempts to suppress the normal frequency data by using more than one alphabet to encrypt the message which results in a one to many relationship between each letter and its substitutes. The Vigenere cipher uses a table with each letter of the alphabet defining a row and each letter of the alphabet defining a column. The cipher table is used together with a keyword to encipher the message. The keyword is repeated as many times as necessary above the plaintext message. For each letter of the plaintext message one finds the intersection of the row given by the corresponding keyword letter and the column given by the plaintext letter. Decryption is carried out by performing the reverse procedure, but the recipient needs to know the keyword.
Although harder to crack than simple Caesar ciphers, the Vigenere cipher can still be cracked by frequency analysis by locating bigrams in the ciphertext to determine the length of the keyword.
Substitution ciphers therefore have the disadvantage that they tend to be possible to crack using some form of frequency analysis.
The present invention uses non-linear dynamics and Chaos Theory to prevent the frequency analysis approach of cracking the encryption. By the very nature of chaotic systems, they do not repeat and hence they are not susceptible to pattern or frequency analysis.
Fractal equations are one form of Chaos Equation and it is known to create encryption methods in visual cryptography using fractal equations. In normal visual cryptography, an image is encrypted by performing an XOR operation on the image with a key. The key can be a small image with randomly selected pixel colours. The key is XORed with the pixels of the actual image until all the image is encrypted. The image can be decrypted by XORing the encrypted image with the same key. Fractal visual encryption uses the same method with fractal geometry in Fractal Iteration of Information (FITIN) (http://www.cs.rit.edu/˜nrr8953/fractal.html).
This form of visual encryption using fractals is based on symmetry which leads to reversibility in the encryption procedure. Due to physical limitations which restrict the use of the fractal geometry in visual encryption, the visual encryption achieved through this method is so far linear that it is not a good encryption for serious data.
In the present invention equations from Chaos Theory, including fractals, are used to generate the encoding bytes for encrypting and decrypting data. There is no need for the concept of a block size or that every byte must be processed. Although the present invention has advantages in encrypting streams of data with a data rate dependency, the encryption method of the present invention can also be used with data blocks with no rate dependency.
The normal meaning of “chaos” is a condition or place of great disorder or confusion, which sounds similar to the meaning of randomness: having no specific pattern. However, chaos as it relates to Chaos mathematics is very different. Most academic institutions will refer to chaos by a different name such as non-linear dynamics.
A chaotic system is not a random system, for example; a roulette wheel is a chaotic system not a random system because:                To find out how high a ball will be after bouncing straight up and down against the ground for a certain amount of time. Find the height that the ball is dropped, the strength of gravity, etc. and use these numbers in the relevant equations to get the answer.        A ball on a roulette wheel is a similar system with the addition that the table spins. The laws of motion state that it has one and only one final destination, it cannot be random. To find where on the roulette table a ball would land; find the height the ball was dropped, the speed and dimensions of the roulette table. Use this data in the appropriate equations to get the answer.        
Therefore:                A chaotic system can be used to encrypt data, and the same system used to decrypt the data.        A random system can be used to encrypt data, but cannot decrypt the data since it is not possible to determine the matching random state (if it was possible, then it would not be random).        
In this document, the term Chaos Equations is taken to include all forms of non-linear equations that are used to describe chaotic behaviour. There is an infinite set of such equations and only selected examples can be illustrated in this disclosure. Examples of Chaos Equations include, Fractal equations including Julia sets, Strange Attractors such as the Lorenz attractor, the Rossler attractor, the Hénon attractor, the Gumowski/Mira attractor, the Tinkerbell attractor, the Periodic attractor, etc.